﻿using System.Collections.Generic;
using Mono.Cecil;

namespace NotifyPropertyWeaverMsBuildTask
{
    public class TypeNode
    {
        public TypeNode()
        {
            Nodes = new List<TypeNode>();
            PropertyDependencies = new List<PropertyDependency>();
            Mappings = new List<MemberMapping>();
            PropertyDatas = new List<PropertyData>();
        }

        public TypeDefinition TypeDefinition { get; set; }
        public List<TypeNode> Nodes { get; set; }
        public List<PropertyDependency> PropertyDependencies { get; set; }
        public List<MemberMapping> Mappings { get; set; }
        public EventInvokerMethod EventInvoker { get; set; }
        public bool ShouldNotifyForAllInType { get; set; }
        public List<PropertyData> PropertyDatas { get; set; }
        public List<PropertyDefinition> AllProperties { get; set; }
    }
}